package com.ocom.common.request.payhandle;


import com.fasterxml.jackson.annotation.JsonProperty;
import com.ocom.common.utils.DateUtil;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class OrderAddPackagePayRequest {
	/**
	 * companyId	单位编号	int
	 * machNo	出厂号	String
	 * tradeNo	设备交易号	String
	 * amount	支付金额	Int	分为单位
	 */
	@Min(1L)
	@NotNull(message = "comId 不能为空")
	@JsonProperty("comId")
	Long comId;
	@NotBlank(message = "machNo 不能为空")
	String machNo;
	@NotBlank(message = "tradeNo 不能为空")
	String tradeNo;
	@Min(1)
	@NotNull(message = "amount 不能为空")
	Integer amount;

	//1微信官方 2 建行H5 3轻松付微信 (数据格式处理，表xf_channel_info -pay_gzh 字段 )4 虚拟账户
	@NotNull(message = "type 不能为空")
	Integer type;

	@Min(1)
	Integer consType = 100;

	String openId;
	Integer payWay;


	/**
	 * pId	人员id	int	虚拟账户pid,非虚拟账户传0	必填
	 * consState	消费类型	int	1消费，2退款，3点餐，5订餐，6退订。默认5	必填
	 * pointId	收费点Id	int	收费点Id，最下级收费点
	 * receiptId	取餐点Id	int		必填
	 * mealDate	餐段归属日期	date		必填
	 * mealNo	餐段编号（1-99）	int	0代表全天	必填
	 */
	@Min(1L)
	@JsonProperty("pId")
	@NotNull(message = "pId 不能为空")
	Long pId;
	Integer consState = 5;
	Integer pointId = 0;
	Integer receiptId = 0;
	String receiptName;
	String mealDate = DateUtil.getDate();
	Integer mealNo = 0;

	private Integer merchId = 0;

	private Long packageTypeId;
	private Date startDate;

}
